'''
BM17 二分查找-I
请实现无重复数字的升序数组的二分查找
给定一个 元素升序的、无重复数字的整型数组 nums 和一个目标值 target ，写一个函数搜索 nums 中的 target，如果目标值存在返回下标（下标从 0 开始），否则返回 -1
'''
from typing import List


class Solution:
    def search(self , nums: List[int], target: int) -> int:
        l = 0
        r = len(nums) - 1
        while l <= r:
            mid = int((l+r)/2)
            if nums[mid] == target:
                return mid
            if nums[mid]>target:
                r = mid-1
            else:
                l = mid+1

        return -1



if __name__ == "__main__":
    numsList = [0,1,3,4,5,6,7,8,9,11,13,16]
    solution = Solution()
    print(solution.search(numsList,5))





